/**
 * 计算服务器处理时长的中间件(总耗时中间件)
 * 1.总耗时中间件的功能就是计算出服务器所有中间件的总耗时，应该位于第一层，因为第一层的中间件是最先处理请求的中间件，同时也是最后处理请求的中间件
 * 2.计算执行时间: 第一次进入咱们中间件的时候，就记录一个开始的时间;
 *      当其他所有中间件都执行完之后，再记录下结束时间以后; 将两者相减就得出总耗时
 * 3.设置响应头: 将计算出来的结果,设置到响应头的 X-Response-Time 中, 单位是毫秒 ms
 */

module.exports = async (ctx, next)=>{
    // 1.记录开始时间
    const start = Date.now()
    // 2.让内层中间件得到执行
    await next()
    // 3.记录结束的时间
    const end = Date.now()
    // 4. 计算总耗时
    const duration = end - start
    // 5.ctx.set 设置响应头 X-Response-Time
    ctx.set('X-Response-Time', duration+'ms')
}

